#include <types.h>
//
//
#include <stat.h>
#include <user.h>

char buf[512];

void cat(int fd) {
	int n;

	while ((n = read(fd, buf, sizeof(buf))) > 0) {
		if (write(1, buf, n) != n) {
			printf(1, "cat: write error\n");
			exit();
		}
	}
	if (n < 0) {
		printf(1, "cat: read error\n");
		exit();
	}
}

int main(int argc, char *argv[]) {
	int fd, i;

	if (argc <= 1) {
		cat(0);
		exit();
	}

	for (i = 1; i < argc; i++) {
		if ((fd = open(argv[i], 0)) < 0) {
			printf(1, "cat: cannot open %s\n", argv[i]);
			exit();
		}
		cat(fd);
		close(fd);
	}
	exit();
}
